Computer graphics applications, in particular computer games, can be very expensive to develop. Unfortunately, they are also a popular target for software pirates, possibly because of the number of potential users. In the past, piracy was usually partially limited by supplying the application on a physical medium, e.g., either a ROM cartridge or a ‘difficult to copy’ disc, or by shipping a physical key, e.g. dongle. It is envisaged, however, that software will increasingly be sold electronically, e.g. downloaded from the Internet or from a ‘point of sale’, POS, terminal in a shop. This lack of a physical medium would thus potentially make illegal copying a much simpler task unless other measures are taken.
The protection of software against piracy has relied on several techniques in the past. One of the techniques is the use of a ‘difficult to replicate’ physical medium for storage of the software application. For instance, some computer games console manufacturers have used “Read Only Memory” (ROM) cartridges, or proprietary variants of common media such as higher density CD ROMs for which no off-the-shelf duplication tools exist.
An alternative technique often used for personal computers is to use standard media, such as floppy disks or CDs, but deliberately ‘damage’ them in small areas during the manufacturing process using, say, a laser. The application software then contains instructions to check that the supplied storage medium contains these errors. An off-the-shelf floppy drive or CD-Rom ‘burner’ would not be able to reproduce the error on the medium. Although the checks for the errors can be hidden within the software to a certain extent, if given sufficient time, a determined cracker can locate them and produce a modified version of the application with the checks removed. This ‘cracked’ software could then be stored and run using off-the-shelf media.
Another method of protecting the contents of the software from being modified would be to use a ‘secure’ CPU which could encrypt all the transfers to and from an external memory.
Such processors, however, are not common and this method may not be a viable option for the manufacturer of a computer graphics device. Furthermore, this method does not prevent copying of the application, because this method can prevent only modification.
Some devices, such as ethernet adapters and some computers, are constructed with an in-built unique identifier. We have appreciated that this identifier could be used to customize software so that it runs on only one machine. Again, unless other steps are taken, this would be open to abuse by modification of the software that removes the checks.